package com.jie.langlangmall.portal.service;

import com.jie.langlangmall.model.OmsCartItem;
import com.jie.langlangmall.portal.domain.CartProduct;
import com.jie.langlangmall.portal.domain.CartPromotionItem;

import java.util.List;

/**
 * @Author Jie
 * @Date 2024/11/26
 * @Email 3217998214@qq.com
 * @Description 购物车信息
 */
public interface OmsCartItemService {
    /**
     * 获取包含促销活动信息的购物车列表
     *
     * @param memberId
     * @param cartIds
     * @return
     */
    public List<CartPromotionItem> listPromotion(Long memberId, List<Long> cartIds);

    /**
     * 根据用户ID获取购物车
     *
     * @param memberId
     * @return
     */
    List<OmsCartItem> list(Long memberId);

    /**
     * 添加商品到购物车
     * @param cartItem
     */
    void add(OmsCartItem cartItem);

    /**
     * 修改购物车中指定商品的数量
     * @param id
     * @param memberId
     * @param quantity
     */
    void updateQuantity(Long id, Long memberId, Integer quantity);

    /**
     * 删除购物车中指定的商品
     * @param id
     * @param ids
     */
    void delete(Long id, List<Long> ids);

    /**
     * 获取购物车中指定商品的规格，用来重选规格
     * @param productId
     * @return
     */
    CartProduct getCartProduct(Long productId);

    /**
     * 修改购物车中的商品规格
     * @param cartItem
     */
    void updateAttr(OmsCartItem cartItem);

    /**
     * 清空购物车
     * @param id
     */
    void clear(Long id);
}
